package com.stone.dao;

import com.stone.dao.base.IBaseDao;
import com.stone.model.Stone;
import com.stone.utils.Page;

/**
 * DAO 基类接口
 * @param <T> T POJO类型
 * @param <ID> ID类型
 */
public interface IStoneDao extends IBaseDao<Stone, Long> {
	/**
	 * 数据库分页操作。找到第@pageno页 每页有@pagesize 的最新上传的石材。
	 * @param pageno
	 * @param pagesize
	 * @return
	 */
	public Page findNewUploadStones4Page(int pageno,int pagesize);
	
	public Page findNewUploadDisplayStones4Page(int pageno,int pagesize);
	/**
	 * 数据库分页操作。找到第@pageno页 每页有@pagesize 的浏览最多的石材。
	 * @param pageno
	 * @param pagesize
	 * @return
	 */
	public Page findVisitMostStones4Page(int pageno, int pagesize);
	
	public Page findVisitMostDisplayStones4Page(int pageno, int pagesize);
	
	/**
	 * 找到符合条件的从第@pageno页 每页有@pagesize 的最新上传的石材。
	 * @param stone
	 * @param pageno
	 * @param pagesize
	 * @return
	 */
	public Page searchStoneByNew4Page(Stone stone,int pageno,int pagesize);
	/**
	 * 找到符合条件的从第@pageno页 每页有@pagesize 的浏览最多的石材。
	 * @param stone
	 * @param pageno
	 * @param pagesize
	 * @return
	 */
	public Page searchStoneByVisit4Page(Stone stone,int pageno,int pagesize);
	
	/**
	 * 找到该石头的从第@pageno页 每页有@pagesize 的供应商。
	 * @param stone
	 * @param pageno
	 * @param pagesize
	 * @return
	 */
	public Page searchCompanyByStone(Stone stone, int pageno, int pagesize);
	
	/**/
	
	public Page getAllStone(int pageno, int pagesize);
	
	/**
	 * 
	 * @param stone
	 * @param pageno
	 * @param size
	 * @return
	 */
	public Page findLikelyStones(Stone stone,int pageno,int size);
	
	
	public Page getStonePageByName(String stoneName,int pageno,int pagesize);
	
	public Page getStonePageByColor(String category, int pageno, int pagesize);
	
	public Page getStonePageByPurpose(String category, int pageno, int pagesize);
}
